package com.ikas.ai.framework.statistics;

/**
 * @Description: 统计方法
 * @Author: qi.yilai
 * @Date: 2023/10/27 17:08
 * @Version: 1.0.0
 **/
public enum StatisticType {

    /**
     * 总数
     */
    COUNT("count"),

    /**
     * 空值总数
     */
    NULL_COUNT("null_count"),

    /**
     * 非空总数
     */
    NOT_NULL_COUNT("not_null_count"),

    /**
     * 空值比例
     */
    NULL_RATIO("null_ratio"),

    /**
     * 非空比例
     */
    NOT_NULL_RATIO("not_null_ratio"),

    /**
     * 求和
     */
    SUM("sum"),

    /**
     * 最大值
     */
    MAX("max"),

    /**
     * 最小值
     */
    MIN("min"),

    /**
     * 平均数
     */
    AVG("avg"),

    /**
     * 标准差
     */
    STANDARD_DEVIATION("std"),

    /**
     * 中位数
     */
    MEDIAN("median")
    ;

    private String method;

    private StatisticType(String method) {
        this.method = method;
    }

    public String getMethod() {
        return method;
    }

    public void setMethod(String method) {
        this.method = method;
    }

    public static StatisticType of(String methodName) {
        for (StatisticType statisticType : StatisticType.values()) {
            if (statisticType.getMethod().equals(methodName)) {
                return statisticType;
            }
        }
        return null;
    }
}
